package com.bdqn.easybuy1.dao;

import com.bdqn.easybuy1.entities.OrderDetail;
import com.bdqn.easybuy1.param.OrderDetailParam;

import java.sql.Connection;
import java.util.List;

public interface OrderDetailDao {
    /**
     * 插入一条订单详情
     *
     * @param conn   数据库连接对象
     * @param detail 封装数据的对象
     * @return 返回受影响行数
     * @throws Exception
     */
    int insert(Connection conn, OrderDetail detail) throws Exception;

    /**
     * 删除订单详情
     *
     * @param conn   数据库连接对象
     * @param detail 封装删除条件的对象
     * @return 返回受影响行数
     * @throws Exception
     */
    int deleteById(Connection conn, OrderDetail detail) throws Exception;

    /**
     * 根据id获取订单详情
     *
     * @param conn 数据库连接对象
     * @param id   订单id
     * @return 返回订单详情对象
     * @throws Exception
     */
    OrderDetail getOrderDetailById(Connection conn, Integer id) throws Exception;

    /**
     * 根据订单id查询改订单所有的订单详情
     *
     * @param conn    数据库连接对象
     * @param orderId 订单id
     * @return 返回订单详情列表
     * @throws Exception
     */
    List<OrderDetail> getOrderDetailList(Connection conn, Integer orderId) throws Exception;

    /**
     * 根据条件查询订单详情的数量
     *
     * @param conn   数据库连接对象
     * @param params 查询参数
     * @return 返回数据条数
     * @throws Exception
     */
    Integer queryOrderDetailCount(Connection conn, OrderDetailParam params) throws Exception;
}
